# 四、图窗属性

import matplotlib.pyplot as plt
from matplotlib_inline import backend_inline
# 展示高清图
backend_inline.set_matplotlib_formats('svg')
# 准备数据
x = [ 1, 2, 3, 4, 5 ] # 数据的 x 值
y = [ 1, 8, 27, 64, 125 ] # 数据的 y 值

# # （1）lim 法
# # Matlab 方式（lim 法）
# Fig1 = plt.figure()
# plt.plot(x, y)
# plt.xlim(1, 5)
# plt.ylim(1, 125)
# # 面向对象方式（lim 法）
# Fig2, ax2 = plt.subplots()
# ax2.plot(x, y)
# ax2.set_xlim(1, 5)
# ax2.set_ylim(1, 125)

# plt.show()


# # （2）axis 法
# Fig3, ax3 = plt.subplots()
# ax3.plot(x, y)
# ax3.axis([1, 5, 1, 125])

# # 还可以使用 plt.axis('equal')使 x 轴与 y 轴的比例达到 1:1，长度等长。
# Fig4, ax4 = plt.subplots()
# ax4.plot(x, y)
# ax4.axis('equal')

# plt.show()


# # 4.2 标题与轴名称
# # 准备数据
# x = [ 1, 2, 3, 4, 5 ] # 数据的 x 值
# y = [ 1, 8, 27, 64, 125 ] # 数据的 y 值
# # Matlab 方式
# Fig1 = plt.figure()
# plt.plot(x, y)
# plt.title("title")
# plt.xlabel("xlabel")
# plt.ylabel("ylatbel")

# # 面向对象方式
# Fig2, ax2 = plt.subplots()
# ax2.plot(x, y)
# ax2.set_title("title")
# ax2.set_xlabel("xlabel")
# ax2.set_ylabel("ylabel")

# plt.show()

# # 4.3 图例
# # 准备数据
# x = [ 1, 2, 3, 4, 5 ] # 数据的 x 值
# y1 = [ 1, 2, 3, 4, 5 ] # 数据的 y1 值
# y2 = [ 0, 0, 0, 0, 0 ] # 数据的 y2 值
# y3 = [ -1, -2, -3, -4, -5 ] # 数据的 y3 值

# #注意需要标签配合
# # Matlab 方式
# Fig1 = plt.figure()
# plt.plot(x, y1, label= "y=x")
# plt.plot(x, y2, label= "y=0")
# plt.plot(x, y3, label= "y=-x")
# plt.legend()

# # 面向对象方式
# Fig2, ax2 = plt.subplots()
# ax2.plot(x, y1, label= "y=x")
# ax2.plot(x, y2, label= "y=0")
# ax2.plot(x, y3, label= "y=-x")
# ax2.legend()

# # 如果你不想展示某些线条的图例，只需要去除该函数中的 label 关键字即可
# # legend 还有三个常用的关键字参数：loc、frameon 和 ncol。
# # ⚫ loc 用于表示图例位置，该关键字在 upper、center、lower 中选一个，在
# # left、center、right 中选一个，用法如 loc='upper right'，也可以 loc='best'。
# # ⚫ frameon 用于表示图例边框，去边框是 frameon=False。
# # ⚫ ncol 用于表示图例的列数，默认是 1 列，也可以通过 ncol=2 调为 2 列。

# Fig3, ax3 = plt.subplots()
# ax3.plot(x, y1)
# ax3.plot(x, y2)
# ax3.plot(x, y3)
# ax3.legend(["y=x", "y=0", "y=-x"], loc="upper right", frameon= False, ncol= 2)
# plt.show()

# 4.4 网格
# 准备数据
x = [ 1, 2, 3, 4, 5 ] # 数据的 x 值
y1 = [ 1, 2, 3, 4, 5 ] # 数据的 y1 值
y2 = [ 0, 0, 0, 0, 0 ] # 数据的 y2 值
y3 = [ -1, -2, -3, -4, -5 ] # 数据的 y3 值
# grid()函数还有 color 与 linestyle 两个参数
Fig1 = plt.figure()
plt.plot(x, y1)
plt.plot(x, y2)
plt.plot(x, y3)
plt.grid(color= "#d64417", linestyle= "--")
plt.show()